Describe I2C work status.
RESP_REC | The received ACK value in master mode or slave mode. 0: ACK, 1: NACK. |
SLAVE_RW | When in slave mode, 1: master reads from slave; 0: master writes to slave. |
ARB_LOST | When the I2C controller loses control of SCL line, this register changes to 1. |
BUS_BUSY | 1: the I2C bus is busy transferring data; 0: the I2C bus is in idle state. |
SLAVE_ADDRESSED | When configured as an I2C Slave, and the address sent by the master is equal to the address of the slave, then this bit will be of high level. |
RXFIFO_CNT | This field represents the amount of data needed to be sent. |
STRETCH_CAUSE | The cause of stretching SCL low in slave mode. 0: stretching SCL low at the beginning of I2C read data state. 1: stretching SCL low when I2C Tx FIFO is empty in slave mode. 2: stretching SCL low when I2C Rx FIFO is full in slave mode. |
TXFIFO_CNT | This field stores the amount of received data in RAM. |
SCL_MAIN_STATE_LAST | This field indicates the states of the I2C module state machine. 0: Idle; 1: Address shift; 2: ACK address; 3: Rx data; 4: Tx data; 5: Send ACK; 6: Wait ACK |
SCL_STATE_LAST | This field indicates the states of the state machine used to produce SCL. 0: Idle; 1: Start; 2: Negative edge; 3: Low; 4: Positive edge; 5: High; 6: Stop |